/*
 *  new.h
 *  ooc
 *
 *  Created by hume on 08-5-3.
 *  Copyright 2008 __MyCompanyName__. All rights reserved.
 *
 */
#ifndef NEW_H
#define NEW_H

#include<stdlib.h>
#include<assert.h>
#include<stddef.h>
#include<stdarg.h>
#include<string.h>

void * new(const void * _class,...);
void delete(void * self);
void * clone(const void *self);
int differ(void * self,const void * b);
size_t sizeOf(const void * self);

struct Class {
     size_t size;
     void *(* ctor)(void *self,va_list *app);
     void *(* dtor)(void *self);
     void *(* clone)(const void *self);
     int (* differ)(const void *self,const void *b);
};
#endif
